To weld a plurality of base materials using arc welding, weaving is employed. In weaving, a weld electrode is advanced in the weld direction while performing a sine wave weaving operation in the right and left directions. In general, weaving is performed by swinging a welding torch right and left or tilting a welding torch right and left about its axis. To cause an articulated robot to perform such weaving, a high accuracy of trajectory control is required.
Such articulated robots are servo-controlled on an axis-by-axis basis. However, since the natural frequency is low, speed feedforward, for example, is rarely applied to prevent vibration. Thus, the phase delay of the actual feedback value against the target value is large, and the response property of a speed controller of a servo control unit varies from axis to axis and, thus, a trajectory error is generated. In addition, a motor that drives each of shafts of the articulated robot is connected to an arm via a speed reducer. To compensate for elastic deformation caused by insufficient rigidity of the speed reducer, the motor needs to operate as instructed by a command value. However, since feedforward does not sufficiently function, it is almost impossible for the motor to operate as instructed by the command value. Thus, elastic deformation compensation does not satisfactorily work. To control elastic deformation compensation in articulated robots, the following technologies have been developed.
Japanese Unexamined Patent Application Publication No. 61-201304 (PTL 1) describes a technique for highly accurately performing control to place a robot arm at a position indicated by a position command value even when the mechanical rigidity of the joints of the speed reducer, for example, is low. In the position control technique, by substituting the position command values of the arms that constitute a robot, the speeds obtained as the first derivatives of the position command values, and the accelerations obtained as second derivatives of the position command values for the equation of motion of the robot arm obtained by taking into account the mechanical rigidities of the joints of the arm, the torque applied to each of the joints is calculated. Thereafter, by dividing the calculated torque by a constant, a function, or a mechanical spring rigidity of the joint given in a table inside a control unit, the deflection angle generated by the mechanical rigidity of the joint is obtained. Subsequently, the obtained deflection angle is added to the position command value, so that a new position command value that cancels out the deflection of the joint is obtained.
Japanese Unexamined Patent Application Publication No. 2005-186235 (PTL 2) describes a control unit for controlling a robot including a plurality of shafts that interfere with one another and that operate as instructed even when interference forces are applied. The control unit controls a robot having a plurality of shafts that interfere with one another. The robot further includes a position control unit and a speed control unit that operate, as instructed, the shafts each including a motor, an arm connected to the motor via a speed reducer, and a motor position detector that detects the position of the motor. The control unit includes an interference force calculation unit that calculates an interference force that acts on another shaft due to the instruction to the shaft, a non-interference torque signal generating unit that obtains, from the command to the shaft and a calculated value of the interference force exerted from another shaft, a motor torque command signal that causes the shaft to operate as instructed even when an interference force is applied by another shaft, and a non-interference position signal generating unit that obtains, from the command to the shaft and a calculated value of the interference force exerted from another shaft, a motor position signal that causes the shaft to operate as instructed even when the interference force is applied from another shaft.